// 用于配置一些组件的通用设置，而无需修改组件本身

import type { SorterResult } from '../components/Table';

export default {
  // 基本表格设置
  table: {
    // 表单接口请求的通用配置
    // 支持 xxx.xxx.xxx
    fetchSetting: {
      // 当前页传递给后台的字段名称
      pageField: 'page',
      // 后台每页显示的数量字段名称
      sizeField: 'pageSize',
      // 接口返回的表单数据字段名称
      listField: 'items',
      // 接口返回的表格总数字段名称
      totalField: 'total',
    },
    // 可选择的每页显示数量选项
    pageSizeOptions: ['10', '50', '80', '100'],
    // 每页默认显示的数量
    defaultPageSize: 10,
    // 默认大小
    defaultSize: 'small',
    // 自定义通用排序函数
    defaultSortFn: (sortInfo: SorterResult) => {
      const { field, order } = sortInfo;
      if (field && order) {
        return {
          // 传递给后台的排序字段
          field,
          // 传递给后台的排序方法 asc/desc
          order,
        };
      } else {
        return {};
      }
    },
    // 自定义通用过滤函数
    defaultFilterFn: (data: Partial<Recordable<string[]>>) => {
      return data;
    },
  },
  // 滚动条设置
  scrollbar: {
    // 是否使用原生滚动条
    // 打开后，菜单、模态框、抽屉将会使用原生滚动条
    native: false,
  },
};
